home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 2 / CU Amiga Magazine's Super CD-ROM 02 (1996)(EMAP Images)(GB)[!][issue 1996-04].iso / magazine / amiga_e / epp / pmodules / breadstr.e < prev    next >
Text File  |  1980-01-05  |  819b  |  43 lines

  1. /* Buffered read string. */
  2.  
  3. OPT TURBO
  4.  
  5. OBJECT readDataType
  6.   fh:LONG
  7.   bufSize:LONG
  8.   maxLineLength:LONG
  9.   inputBuffer:LONG
  10.   length:LONG
  11.   pos:LONG
  12. ENDOBJECT
  13.  
  14. PROC bReadStr(rData:PTR TO readDataType, string)
  15.   DEF inputBuffer, i=0, pos
  16.   inputBuffer:=rData.inputBuffer
  17.   pos:=rData.pos
  18.   WHILE i<rData.bufSize
  19.     IF pos>=rData.length
  20.       rData.length:=Read(rData.fh, inputBuffer, rData.bufSize)
  21.       IF rData.length<1
  22.           IF i>0
  23.             string[i++]:=10
  24.             string[i]:=0
  25.             rData.length:=i
  26.           ENDIF
  27.           rData.pos:=rData.length
  28.           RETURN i
  29.       ENDIF
  30.       pos:=0
  31.     ENDIF
  32.     string[i]:=inputBuffer[pos++]
  33.     IF (string[i++]=10) OR (i=rData.maxLineLength)
  34.       SetStr(string, i)
  35.       rData.pos:=pos
  36.       RETURN i
  37.     ENDIF
  38.   ENDWHILE
  39. ENDPROC
  40.   /* bReadStr */
  41.  
  42.  
  43.